package com.ccc.scala.base3_calOper

object CalOper2 {
  def main(args: Array[String]): Unit = {
    // 赋值运算符
    var a = 1
    a += 1
    a -= 1
    a *= 5
    a /= 1
    a %= 3
    a <<= 3 // 按位左移后再赋值
    a >>= 3 // 按位右移后再赋值
    a &= 3 // 按位与后再赋值
    a ^= 3 // 按位异或后再赋值
    a |= 3 // 按位或后再赋值

    // a++ // ERROR
    // a-- // ERROR
    // ++运算有歧义，容易理解出现错误，所以scala中没有这样的语法，所以采用 +=的方式来代替

    // 逻辑运算符、位运算符。。。 同Java

    // 运算符的本质
    // 在Scala中其实是没有运算符的，所有运算符都是方法
    val i: Int = 10
    val j: Int = i.+(10) // scala是完全面向对象的语言，所以数字其实也是对象
    val k: Int = j + (20) // 当调用对象的方法时，点.可以省略
    val m: Int = k + 30 // 如果函数参数只有一个，或者没有参数，()可以省略
    println(m) // 70

  }

}
